Techniques to manage map information illustrating a transition between views

ABSTRACT

Techniques to manage map information illustrating a transition between views of a digital map. The transition may refer to a visual transition from a three dimensional map view and a two dimensional map view or vice versa. For each map location, the map information may include a set of spherical coordinates that corresponds to intermediate map views. This set of spherical coordinates enable presentation to a user the visual transition such that user is able to switch between viewing spatially correct surface locations and substantially all surface locations. Other embodiments are described and claimed.

RELATED APPLICATION

This application claims priority to, and benefit of, U.S. ProvisionalPatent Application No. 61/876,100 titled “Techniques to Manage MapInformation” filed on Sep. 10, 2013, the entirety of which is herebyincorporated by reference.

BACKGROUND

Digital maps are becoming a universal platform for conveying mapinformation representing locations of people, places, objects andevents. As more map information is presented on a digital map, itbecomes necessary to ensure the map information is presented to a userin a meaningful way. Further, digital maps are becoming more interactiveto allow a user to manipulate a digital map to view particular map itemsof interest. In addition, the sheer volume of map information consumessignificant computing and communications resources. As a result,enhanced techniques are needed to manage and manipulate a digital map toefficiently convey map information.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some novel embodiments described herein. This summaryis not an extensive overview, and it is not intended to identifykey/critical elements or to delineate the scope thereof. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Embodiments are generally directed to enhanced techniques to managedigital maps. Some embodiments are particularly directed to enhancedtechniques to manage map information for a digital map in an efficientand effective manner to facilitate consumption by a user.

In one embodiment, a map application may comprise a map transitioncomponent arranged to provide map views that can be smoothlytransitioned between two dimensional (2D) and three dimensional (3D)views. For instance, a digital map may be switched between a 3D view ofa globe and a 2D view of a flat map utilizing a series of intermediateviews to simulate a smooth animated transition between views.

In one embodiment, the map transition component may be operative on thelogic circuit to render a set of views of a digital map for presentationon a display element in which a three dimensional view comprises datarepresenting a spatially correct surface and the intermediate viewscorrespond to a transition between views, each intermediate view tocomprise mapping data between the spatially correct surface and asubstantially spherical coordinate system.

In one embodiment, a map application may comprise a map color componentconfigured to cooperate with the map transition component during mapview transitioning. An example map view displaying a range of colorsthat represent multiple categories for a given location may transitioninto a flatter map view (e.g., a 2D view) with a coloring assignmentthat reflects the flattening of map data. For instance, a digital mapmay provide regions with blended colors, with each color representing adifferent category assigned to a particular region. The blending effectprovides a high level of granularity for conveying nuanced informationabout a region.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of the various ways in which the principles disclosed hereincan be practiced and all aspects and equivalents thereof are intended tobe within the scope of the claimed subject matter. Other advantages andnovel features will become apparent from the following detaileddescription when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of an apparatus to manage digital maps.

FIGS. 2A-D illustrate embodiments of a transition between 2D/3D maps.

FIG. 3 illustrates an embodiment of a region map.

FIG. 4 illustrates an embodiment of a centralized system for theapparatus.

FIG. 5 illustrates an embodiment of a distributed system for theapparatus.

FIG. 6 illustrates an embodiment of a first logic flow for the system ofFIG. 1.

FIG. 7 illustrates an embodiment of a second logic flow for the systemof FIG. 1.

FIG. 8 illustrates an embodiment of a third logic flow for the system ofFIG. 1.

FIG. 9 illustrates an embodiment of a fourth logic flow for the systemof FIG. 1.

FIG. 10 illustrates an embodiment of a computing architecture.

FIG. 11 illustrates an embodiment of a communications architecture.

DETAILED DESCRIPTION

Embodiments are generally directed to enhanced techniques to managedigital maps. Some embodiments are particularly directed to enhancedtechniques to manage map information for a digital map in an efficientand effective manner to facilitate consumption by a user. The mapinformation may include intermediate views illustrating a transitionbetween a three dimensional view of the digital map and a twodimensional view of the same map. This transition may be animated inorder to enable a user to clearly perceive a spatially correct surfaceand an entire surface in an efficient manner.

As a result, the embodiments can improve affordability, scalability,modularity, extendibility, or interoperability for an operator, deviceor network. Other advantages and use scenarios apply as well.

With general reference to notations and nomenclature used herein, thedetailed descriptions which follow may be presented in terms of programprocedures executed on a computer or network of computers. Theseprocedural descriptions and representations are used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art.

A procedure is here, and generally, conceived to be a self-consistentsequence of operations leading to a desired result. These operations arethose requiring physical manipulations of physical quantities. Usually,though not necessarily, these quantities take the form of electrical,magnetic or optical signals capable of being stored, transferred,combined, compared, and otherwise manipulated. It proves convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like. It should be noted, however, that all of these and similarterms are to be associated with the appropriate physical quantities andare merely convenient labels applied to those quantities.

Further, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein which form part of one or more embodiments.Rather, the operations are machine operations. Useful machines forperforming operations of various embodiments include general purposedigital computers or similar devices.

Various embodiments also relate to apparatus or systems for performingthese operations. This apparatus may be specially constructed for therequired purpose or it may comprise a general purpose computer asselectively activated or reconfigured by a computer program stored inthe computer. The procedures presented herein are not inherently relatedto a particular computer or other apparatus. Various general purposemachines may be used with programs written in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these machines will appear from thedescription given.

Reference is now made to the drawings, wherein like reference numeralsare used to refer to like elements throughout. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding thereof. It maybe evident, however, that the novel embodiments can be practiced withoutthese specific details. In other instances, well known structures anddevices are shown in block diagram form in order to facilitate adescription thereof. The intention is to cover all modifications,equivalents, and alternatives consistent with the claimed subjectmatter.

FIG. 1 illustrates a block diagram for an apparatus 100. In oneembodiment, the apparatus 100 may comprise a computer-implementedapparatus 100 having a software map application 120 comprising one ormore components 122-a. Although the apparatus 100 shown in FIG. 1 has alimited number of elements in a certain topology, it may be appreciatedthat the apparatus 100 may include more or less elements in alternatetopologies as desired for a given implementation.

It is worthy to note that “a” and “b” and “c” and similar designators asused herein are intended to be variables representing any positiveinteger. Thus, for example, if an implementation sets a value for a=5,then a complete set of components 122-a may include components 122-1,122-2, 122-3, 122-4 and 122-5. The embodiments are not limited in thiscontext.

The apparatus 100 may comprise the map application 120. The mapapplication 120 may be generally arranged to manage a digital map 124. Amap is a visual representation of an area. The digital map 124 maycomprise a digital or electronic form of a map. The digital map 124 maybe used to depict geography. Map information for the digital map 124 maybe part of, or originate from, a geographic information system (GIS). AGIS is the merging of cartography, statistical analysis, and computerscience technology. A GIS is a system designed to capture, store,manipulate, analyze, manage, and present all types of geographical data.Other geoinformatic systems and/or data may be used as well. Althoughsome embodiments discuss maps in terms visualizing physical geographicallocations, the digital map 124 may also be used to represent any space,real or imagined, such as brain mapping, DNA mapping andextraterrestrial mapping. Embodiments are not limited in this context.

In one embodiment, the map information may be provided by a sameelectronic device implementing the apparatus 100. In one embodiment, themap information may be provided by a different electronic device (e.g.,a server) from the one implementing the apparatus 100 (e.g., a client).

The map application 120 may comprise any software application capable ofcreating, modifying, managing or otherwise using map information for thedigital map 124. In one embodiment, the map application 120 may compriseor be implemented as a stand-alone productivity application, or anadd-in for a productivity application. A productivity application maycomprise a software application program designed to perform a specificset of functions for a knowledge worker. A productivity applicationtypically operates to create, modify, send, receive, or otherwise managecontent for one or more documents. Examples for productivityapplications may include without limitation a productivity suite ofinter-related client applications, server applications and/or webservices, designed for a particular operating system, such as aMICROSOFT® OFFICE productivity suite for MICROSOFT WINDOWS®, made byMicrosoft Corporation, Redmond, Wash. Examples for productivityapplications may include without limitation MICROSOFT WORD, MICROSOFTEXCEL®, MICROSOFT POWERPOINT®, MICROSOFT OUTLOOK®, MICROSOFT ACCESS®,MICROSOFT INFOPATH®, MICROSOFT ONENOTE®, MICROSOFT PROJECT, MICROSOFTPUBLISHER, MICROSOFT SHAREPOINT® WORKSPACE, MICROSOFT VISIO®, MICROSOFTOFFICE INTERCONNECT, MICROSOFT OFFICE PICTURE MANAGER, MICROSOFTSHAREPOINT DESIGNER, and MICROSOFT LYNC. Examples for serverapplications may include without limitation MICROSOFT SHAREPOINT SERVER,MICROSOFT LYNC SERVER, MICROSOFT OFFICE FORMS SERVER, MICROSOFT OFFICEGROOVE® SERVER, MICROSOFT OFFICE PROJECT SERVER, MICROSOFT OFFICEPROJECT PORTFOLIO SERVER, and MICROSOFT OFFICE PERFORMANCEPOINT® SERVER.It also is to be appreciated that embodiments may implement other typesof applications in addition to productivity applications which areconsistent with the described embodiments. The embodiments are notlimited to these examples.

The map application 120 may be capable of communicating with a networkdevice, such as a server providing network services, such as a webservice. Examples for web services may include without limitationMICROSOFT WINDOWS LIVE®, MICROSOFT OFFICE WEB APPLICATIONS, MICROSOFTOFFICE LIVE, MICROSOFT LIVE MEETING, MICROSOFT OFFICE PRODUCT WEB SITE,MICROSOFT UPDATE SERVER, and MICROSOFT OFFICE 365.

In one embodiment, a map application 120 may comprise a map transitioncomponent 122-1 arranged to provide map views that can be smoothlytransitioned between two dimensional (2D) and three dimensional (3D)views. For instance, a digital map may be switched between a threedimensional view of a sphere or globe and a two dimensional view of aplane or flat map utilizing a sequence of intermediate views 130 tosimulate a smooth animated transition between views.

Viewing geographic data on a three dimensional map comes with a lot ofchallenges. One challenge is the ability to view map data in a spatiallycorrect manner and also relative to other data points in one view.Representing the data on a sphere keeps it spatially correct, but it isdifficult to view globe wide data in a single view. In such cases, thetwo dimensional view of a flat surface may be desired as it allowspresentation of all the map data in a single view. However, transformingthe three dimensional view to two dimensional view may spatially distortdistances between data points, particularly towards the northern andsouthern poles. For instance, countries such as Iceland and Greenlandmay appear further apart in the two dimensional view than the threedimensional view, or vice-versa. Furthermore, aside from distance,distortions may occur in the ratio between east-west distance (stretchedby projection) and north-south distance. This may potentially becorrected by stretching the north-south distance to match the east-weststretch, but that may cause magnification of distances in alldirections.

The map transition component 122-1 may compensate for these and otherproblems. The map transition component 122-1 may enable an end user tosee the data on both the three dimensional and the two dimensional view.Further, the map transition component 122-1 may enable a smooth animatedtransition between the two views using a progression of intermediateviews 130. Further, both views will maintain proper shapes, angles,and/or area of map items during or after transition. In addition,spatial distortions, such as distances between map items, may be reducedor effectively eliminated. Other features and advantages of the maptransition component 122-1 are described below with reference to FIG. 2.

The map application 120 may also comprise a map color component 122-2.The map color component 122-2 may be arranged to provide map views witha range of colors that represent multiple categories for a givenlocation. For instance, the digital map 124 may provide regions withblended colors, with each color representing a different categoryassigned to a particular region. The blending effect provides a highlevel of granularity for conveying nuanced information about aparticular region. The map color component 122-2 provides the capabilityof switching between shading options to represent multiple categoriesfor a given map. The map color component 122-2 also provides new shadingoptions. The map color component 122-2 further provides smart defaultsfor the various shading options for user convenience. Other features andadvantages of the map color component 122-2 are described below withreference to FIG. 3.

The map application 120 may further comprise or implement a mapscheduler component 122-3. The map scheduler component 122-3 providesthe capability of presenting a considerable number of time-boundcategorized data points on a three dimensional view of a digital map124. The map scheduler component 122-3 may assign work units to multipleprocessors and/or processor cores to efficiently render the digital map124. For instance, the digital map 124 may present varying types ofinformation in a same location at different times. In this case, arelative position of a data point needs to be determined for all datapoints sharing the same time and location. Work may be scheduled to agiven processor among the set of processors to decrease an amount oftime needed to calculate this relative position. Other features andadvantages of the map scheduler component 122-3 are described below withreference to FIG. 3.

FIGS. 2A-D illustrate a transition 200 with various user interface viewsof the digital map 124. The map transition component 122-1 has at leasttwo modes for rendering the digital map 124. The first is a threedimensional view mode. The second is a plane view mode. The maptransition component 122-1 may animate transition between the two viewmodes with one or more intermediate views to provide a smoothfolding/unfolding visual effect.

FIG. 2A depicts a three dimensional view 202. Because, in this example,the digital map 124 is rendered as a globe or sphere, the threedimensional view may be referred to as a global or a spherical map view.The map application 120 may present the three dimensional view 200during the three dimensional view mode.

FIG. 2D illustrates a plane view 208. The map application 120 maypresent the plane view 208 during the plane view mode.

FIGS. 2B, 2C illustrate a pair of intermediate views 204, 206,respectively, that may be presented during transition between the threedimensional view 202 and the plane view 208. The intermediate view 204illustrates an initial unfurling of the sphere at time t₁. Theintermediate view 206 illustrates a further unfurling of the sphere attime t₂. Although only two intermediate views 204, 206 are shown by wayof example, any number of intermediate views may be used to provide agiven level of fidelity for a particular transition, such as 24 viewsper second, 30 views per second, and so forth.

The map transition component 122-1 may implement animations oftransitions between 2D/3D view modes by utilizing a smooth family ofintermediate surfaces between round globe and flat map, along with awell-behaved cartographic projection to each such surface. A family ofintermediate surfaces may be defined as a surface S(t) for every realnumber t between 0 and 1, with a map plane at t=0 and the unit sphere att=1. For the map transition component 122-1, S(t) is a portion a sphereof radius 1/t, tangent to the flat map plane at its center. S(1) is theunit sphere (e.g., round globe). S(0) may be undefined, but the limit

$\lim\limits_{t\rightarrow 0}\; {S(t)}$

S(t) is clearly the plane.

The map transition component 122-1 renders the plane view 208 using aMercator projection. A Mercator projection has the following properties:(1) it preserves shapes and angles (e.g., it is mathematicallyconformal); (2) it maps parallels (e.g., lines of constant latitude) andmeridians to horizontal and vertical lines on the plane, respectively;and (3) it uses a scale that is constant along any given parallel.

If the scale along the equator is 1 (e.g., as a default), the Mercatorprojection is defined by x(longitude)=longitude, andy(latitude)=m(latitude), where:

${m(\phi)} = {\log \left( {\tan \left( {\frac{\pi}{4} + \frac{\phi}{2}} \right)} \right)}$

All angles are in radians.

To define the mapping M(t) from the unit sphere to the intermediatesphere S(t), spherical coordinates (longitude_(t), latitude_(t)) on S(t)may be introduced in a way that parallels and meridians on S(t) map toparallels and meridians of the unit sphere, and the point (0,0) is fixedfor all t.

The mapping is then:

longitude_(t) =tlongitude

latitude_(t) =m ⁻¹(tm(latitude))

The symbol m⁻¹ represents the Mercator projection's inverse.

The following analogous properties justify viewing M(t) as a generalizedMercator projection: (1) the mapping is conformal; (2) it maps parallelsand meridians on the globe to parallels and meridians on S(t); and (3)it uses a scale that is constant along any meridian (e.g., the scale is1 along the equator).

In addition, the placing of visual indicia or visuals, such as threedimensional columns or bubbles, may need a smoothly varying localcoordinate system at each point on the three dimensional surface. Aspherical map may utilize these visuals to represent a number oftime-bound categorized data points at a particular geographic location.

Based upon the spherical coordinate system, the surface normal at theimage of the point (longitude, latitude) is:

-   -   (cos latitude_(t) cos longitude_(t), cos latitude_(t) sin        longitude_(t), sin latitude_(t))        The north and east pointing directions are the tangent vectors        of the meridian and parallel at any point. These vectors may        form the local coordinate system suitable for placing one or        more of the example visuals described herein.

FIG. 3 illustrates a region map 300. The region map 300 is a particularform of digital map 124 presenting regional information for an area,such as individual states within the United States of America. Redstate/blue state election maps are a quintessential example.

Choosing how to color the region map 300 becomes more difficult when thedata includes multiple categories for a location. For example, if a dataset includes Democratic, Republican, and Independent votes for eachstate, then there may be more than one way to shade each state. Forexample, a state that was won by Republicans may be assigned a full redcolor (without shading) regardless of a margin of victory. On the otherhand, a state that was won by Republicans may be assigned a lightershade of red if Republicans only won by a narrow margin (e.g., shadingbased on category value within location).

When a location is assigned a single category, the map color component122-2 may assign colors without any shading. For instance, assume themap color component 122-2 needs to assign colors to the region map 300utilizing a data set as shown in Table 1, as follows:

TABLE 1 State Party NY D FL R NJ DThe data set of Table 1 provides locations representing the three statesof New York, Florida and New Jersey. The data set also provides a singlecategory for each state. The single category is political partyaffiliation, with values indicating either Democratic or Republican.

The map color component 122-2 may select a particular color to representeach state based on comparison of category values assigned to eachstate. For instance, assume a blue color gradient is assigned to theDemocratic Party, and a red color gradient is assigned to the RepublicanParty. In this instance, the states of New York and New Jersey may beassigned a color blue, while the state of Florida may be assigned acolor red. As there is a single category for each location, colorshading within each color is not necessary to visually convey categoryinformation. A single color is sufficient for a viewer to understandwhether a state has voted Democrat or Republican.

When a single geographic location is assigned multiple categories,however, it becomes difficult for a single color to visually conveyseparate category values for each category assigned to a location. Themap color component 122-2 may solve these and other problems byutilizing a color gradient having multiple shades of a given color. Insome cases, a particular shade may reflect a particular category. Inother cases, a particular shade may reflect a blending of multiplecategories. In either case, a combination of color and color shadeswithin the color may be used to convey information from multiplecategories assigned to a single location.

Prior to shade selection, the map color component 122-2 may generate orretrieve a color gradient for the digital map 124 or region map 300. Themap color component 122-2 may assign varying shades of colors from thecolor gradient to the location in a way that represents information frommultiple categories assigned to the location. Region map 300 illustratessome examples of shades assigned from a color gradient having shades forthe color grey.

The map color component 122-2 may select a shade of a color gradientbased on a data set for a location. For instance, assume the map colorcomponent 122-2 needs to assign colors to the region map 300representing states within the United States of America. Further assumethe map color component 122-2 receives as input a data set as shown inTable 2, as follows:

TABLE 2 State Party # Votes NJ Ind 7 NJ Rep 2 NJ Dem 10 PA Ind 3 PA Rep2 PA Dem 10The data set of Table 2 has three columns. The first column includesdata representing the various states of New Jersey and Pennsylvania. Thesecond and third columns include data representing multiple categoriesfor each of the states of New Jersey and Pennsylvania. Column 2indicates a first category of political party affiliation. Column 3indicates a second category of a number of votes received for eachpolitical party in a recent election.

The map color component 122-2 may select a particular shade to representeach state based on comparison of values across the multiple categoriesassigned to each state. For instance, assume a blue color gradient isassigned to the Democratic Party, a red color gradient is assigned tothe Republican Party, and a green color gradient is assigned to theIndependent party. When the map color component 122-2 evaluates thefirst category, it may assign a color (R/B/G) to each of the valuesrepresenting a political party. In this case, the first categoryindicates that there are 3 political parties for each state. As such,the map color component 122-2 may either: (1) select a blending of thethree colors (R/B/G) to create a blended shade representing the presenceof three political parties within a state; (2) select a color (R/B/G)representing a sub-region of each state associated with each politicalparty; or (3) evaluate other categories prior to color assignment to thelocation.

Assume the map color component 122-2 is configured for the third option.The map color component 122-2 may evaluate the second category of numberof votes for each political party. In this case, the political partywith a greatest number of votes for both states is the Democratic Party.As such, the map color component 122-2 may select a blue color gradientfor color assignment. However, simply assigning both states a same colorblue (or shade of blue) would not convey the number of votes received bythe other political parties. To represent this information, the mapcolor component 122-2 may compare values for number of votes received bythe Republican Party, which in this case is 2 for each state. As thatdoes not provide any differentiation between states, it may beeliminated from consideration in color selection. In comparing valuesfor number of votes received by the Independent party, the map colorcomponent 122-2 receives values of 7 and 3 for New Jersey andPennsylvania, respectively. As this does provide differentiation, themap color component 122-2 may select different shades of blue torepresent this difference. For instance, the map color component 122-2may select a first shade of blue for New Jersey and a second shade ofblue for Pennsylvania as both are predominantly democratic. Further, themap color component 122-2 may make the first shade lighter or darkerthan the second shade in order to represent the variation in number ofIndependent party votes. In this manner, the region map 300 may quicklyprovide a viewer information from multiple categories for a singlelocation based exclusively on selective color shading, which in turn,corresponds to two or more of the multiple categories assigned to thelocation from the data set of Table 2.

A particular shade may be selected from a color gradient based onvarious factors. For instance, one end of the color gradient mayrepresent a maximum value of a category range (or multiple categoryranges), while the other end of the color gradient may represent aminimum value of the category range (or multiple category ranges).Intermediate shades along the color gradient may then be scaled based onthe maximum and minimum values.

One of challenge with region charts is that it is difficult to split upa region within the region map 300. In column charts, when there areseveral categories at a location, the map application 120 could splitthe column into either stacked or clustered. Similarly for bubbles, themap application 120 can split the bubble into pie slices.

As previously described, the map application 120 may further comprise orimplement a map scheduler component 122-3. The map scheduler component122-3 provides the capability of presenting a large number of time-boundcategorized data points on a spherical view or an intermediate view of adigital map 124. The map scheduler component 122-3 may assign work unitsto multiple processors and/or processor cores to efficiently render thedigital map 124. For instance, the digital map 124 may present varyingtypes of information in a same location at different times. In thiscase, a relative position of a data point needs to be determined for alldata points sharing the same time and location. Work may be scheduled toa given processor among the set of processors to decrease an amount oftime needed to calculate this relative position.

The map scheduler component 122-3 may render millions of time-boundclustered graphics elements using one or more dedicated processors, suchas a graphical processing unit (GPU). In order to render severaltime-bound data points that share the same location in space, arendering system needs to determine which data points are visible forany given point in time. When multiple points are visible at the samelocation at the same point in time, the rendering system also needs todynamically determine (e.g., for every rendered frame) a relativeposition of a data point among all data points sharing the same time andlocation.

For instance, assume the map scheduler component 122-3 is given a dataset as shown in Table 3 where the data points share a same location:

TABLE 3 Values Category Timestamp 3 Yellow 1 4 Green 1 7 Yellow 2 2Green 3 1 Red 3

Various frames associated with the data set of Table 3 need to berendered for time stamps.

FIG. 4 illustrates a block diagram of a centralized system 400. Thecentralized system 400 may implement some or all of the structure and/oroperations for the apparatus 100 in a single computing entity, such asentirely within a single device 420.

The device 420 may comprise any electronic device capable of receiving,processing, and sending information for the apparatus 100. Examples ofan electronic device may include without limitation an ultra-mobiledevice, a mobile device, a personal digital assistant (PDA), a mobilecomputing device, a smart phone, a telephone, a digital telephone, acellular telephone, eBook readers, a handset, a one-way pager, a two-waypager, a messaging device, a computer, a personal computer (PC), adesktop computer, a laptop computer, a notebook computer, a netbookcomputer, a handheld computer, a tablet computer, a server, a serverarray or server farm, a web server, a network server, an Internetserver, a work station, a mini-computer, a main frame computer, asupercomputer, a network appliance, a web appliance, a distributedcomputing system, multiprocessor systems, processor-based systems,consumer electronics, programmable consumer electronics, game devices,television, digital television, set top box, wireless access point, basestation, subscriber station, mobile subscriber center, radio networkcontroller, router, hub, gateway, bridge, switch, machine, orcombination thereof. The embodiments are not limited in this context.

The device 420 may execute processing operations or logic for theapparatus 100 using a processing component 430. The processing component430 may comprise various hardware elements, software elements, or acombination of both. Examples of hardware elements may include devices,logic devices, components, processors, microprocessors, circuits,processor circuits, circuit elements (e.g., transistors, resistors,capacitors, inductors, and so forth), integrated circuits, applicationspecific integrated circuits (ASIC), programmable logic devices (PLD),digital signal processors (DSP), field programmable gate array (FPGA),memory units, logic gates, registers, semiconductor device, chips,microchips, chip sets, and so forth. Examples of software elements mayinclude software components, programs, applications, computer programs,application programs, system programs, software development programs,machine programs, operating system software, middleware, firmware,software modules, routines, subroutines, functions, methods, procedures,software interfaces, application program interfaces (API), instructionsets, computing code, computer code, code segments, computer codesegments, words, values, symbols, or any combination thereof.Determining whether an embodiment is implemented using hardware elementsand/or software elements may vary in accordance with any number offactors, such as desired computational rate, power levels, heattolerances, processing cycle budget, input data rates, output datarates, memory web resources, data bus speeds and other design orperformance constraints, as desired for a given implementation.

The device 420 may execute communications operations or logic for theapparatus 100 using communications component 440. The communicationscomponent 440 may implement any well-known communications techniques andprotocols, such as techniques suitable for use with packet-switchednetworks (e.g., public networks such as the Internet, private networkssuch as an enterprise intranet, and so forth), circuit-switched networks(e.g., the public switched telephone network), or a combination ofpacket-switched networks and circuit-switched networks (with suitablegateways and translators). The communications component 440 may includevarious types of standard communication elements, such as one or morecommunications interfaces, network interfaces, network interface cards(NIC), radios, wireless transmitters/receivers (transceivers), wiredand/or wireless communication media, physical connectors, and so forth.By way of example, and not limitation, communication media 412, 442include wired communications media and wireless communications media.Examples of wired communications media may include a wire, cable, metalleads, printed circuit boards (PCB), backplanes, switch fabrics,semiconductor material, twisted-pair wire, co-axial cable, fiber optics,a propagated signal, and so forth. Examples of wireless communicationsmedia may include acoustic, radio-frequency (RF) spectrum, infrared andother wireless media.

The device 420 may communicate with other devices 410, 450 over acommunications media 412, 442, respectively, using communicationssignals 414, 444, respectively, via the communications component 440.The devices 410, 450 may be internal or external to the device 420 asdesired for a given implementation.

As shown in FIG. 4, the device 420 may implement the entire apparatus100 to access a map database implemented by another device, such as aGIS 460 implemented by the device 450. The apparatus 100 may also renderthe digital map 124 with another device implementing some or all ofapparatus 100, such as the device 410. The digital map 124 may becommunicated in any number of ways, such as through a messaginginterface (e.g., email, short message service (SMS), multimedia messageservice (MMS), instant messaging (1M), and so forth), shared networkstorage space, peer-to-peer communications, web technologies (e.g., aweb page), and other communications modalities. The device 410 may alsouse apparatus 100 to communicate with the GIS 460 in a manner similar tothe device 420. The device 420 may further implement other platformcomponents common to a computing and/or communications device, such asdescribed with reference to FIG. 11.

FIG. 5 illustrates a block diagram of a distributed system 500. Thedistributed system 500 may distribute portions of the structure and/oroperations for the apparatus 100 across multiple computing entities.Examples of distributed system 500 may include without limitation aclient-server architecture, a 3-tier architecture, an N-tierarchitecture, a tightly-coupled or clustered architecture, apeer-to-peer architecture, a master-slave architecture, a shareddatabase architecture, and other types of distributed systems. Theembodiments are not limited in this context.

The distributed system 500 may comprise a client device 510 and a serverdevice 550. In general, the client device 510 and the server device 550may be the same or similar to the client device 220 as described withreference to FIG. 2. For instance, the client system 510 and the serversystem 550 may each comprise a processing component 530 and acommunications component 550 which are the same or similar to theprocessing component 430 and the communications component 450,respectively, as described with reference to FIG. 8. In another example,the devices 510, 550 may communicate over a communications media 512using communications signals 515 via the communications components 550.

The client device 510 may comprise or employ one or more client programsthat operate to perform various methodologies in accordance with thedescribed embodiments. In one embodiment, for example, the client device510 may implement a portion of the apparatus 100, such as the mapapplication 120, for example.

The server device 550 may comprise or employ one or more server programsthat operate to perform various methodologies in accordance with thedescribed embodiments. In one embodiment, for example, the server device550 may implement a portion of the apparatus 100, such as the GIS 460,for example. The distributed model may be suitable for sharing mapinformation among multiple devices or users.

FIG. 6 illustrates an embodiment of a logic flow 600. The logic flow 600may be representative of some or all of the operations executed by oneor more embodiments described herein.

In the illustrated embodiment shown in FIG. 6, the logic flow 600 isdirected towards processing a set of views at block 602. For example, aset of views pertaining to a digital map may include a three dimensionalview, a plane view and a set of intermediate views corresponding to avisual transition between the three dimensional view and the plane view.At a particular point in time in the visual transition, an intermediateview may refer to an intermediate sphere representing a map ofgeographic locations in which one example geographic location may be aregion.

The logic flow 600 may refer to processing a control directive at block604. The control directive causes a transition either between the threedimensional view and the plane view or vice versa. For example, uponreceipt of a control directive to transition to a flat map (e.g., from asphere map), the logic flow 600 proceeds to block 606A. As anotherexample, upon receipt of a control directive to transition to a spheremap (e.g., from a flat map), the logic flow 600 proceeds to block 606B.

The logic flow 600 may refer to presenting the three dimensional view atblock 606A. The logic flow 600 may refer to presenting the plane view ofthe digital map at block 606B. For example, the logic flow 600 mayproduce a rendering of a global map as a sphere; and the block 606B mayproduce a rendering of the flat map as the plane.

The logic flow 600 may refer to presenting the set of intermediate viewsat block 608. For example, the logic flow 600 may render a progressionof intermediate views as intermediate spheres that increase or decreasein radius between two points in time such that the visual transitionbetween the three dimensional view and the plane view is presented viaanimation. In some embodiments, the visual transition simulates theunfurling of the flat map into a globe or, vice versa, the furling ofthe globe into the flat map.

The logic flow 600 proceeds to either the block 606A or 606B, dependingupon whether the control directive corresponded to a transition to theplane view or the three dimensional view, respectively. The logic flow600 returns to the block 604 and processes another control directive.The logic flow 600 generally enables presentation of a view of aspatially correct surface and a view of an entire surface or at least aconsiderable portion thereof.

FIG. 7 illustrates an embodiment of a logic flow 700. The logic flow 700may be representative of some or all of the operations executed by oneor more embodiments described herein.

In the illustrated embodiment shown in FIG. 7, the logic flow 700processes data representing a spatially correct surface at block 702. Aunit sphere, as one example, provides a suitable model for mapping aspatially correct surface, such as a globe. It is appreciated that otherexample models are capable of representing a spatially correct surfacein accordance with the embodiments described herein. For example, somemodels are configured to map spheroid objects while some models aredesigned for other objects, such as brains. Any one of these models canbe modified to illustrate a transition between a three-dimensional viewof the spatially correct surface and a two-dimensional view.

The logic flow 700 may process mapping data between the spatiallycorrect surface and a substantially spherical coordinate system at block704. Any appropriate coordinate system, such as a geographic coordinatesystem, may define locations on the spatially correct surface.Coordinates for those locations may be projected onto coordinates in thesubstantially spherical coordinate system. One example substantiallyspherical coordinate system may define a spheroid with a largerdimensions than the unit sphere. In one embodiment, by mapping thespatially correct surface onto this coordinate system, the resultingsurface data may no longer be represented as spatially correct.

The logic flow 700 may generate a set of intermediate views at block706. Coordinates of the resulting surface data may be mapped to a secondset of substantially spherical coordinates on a three dimensionalsurface (e.g., another spheroid) with larger dimensions that thespheroid. This process may be repeated until a set of coordinates foreach intermediate view is determined. Presentation of these views may beaccomplished by determining a transition rate for rendering theintermediate views on a display element. This transmission rate mayrepresent an aesthetically pleasing and smooth animation illustrating atransition between a view of the spatially correct surface and anotherview, such as a plane view.

FIG. 8 illustrates an embodiment of a logic flow 800. The logic flow 800may be representative of some or all of the operations executed by oneor more embodiments described herein.

In the illustrated embodiment shown in FIG. 8, the logic flow 800commencing unit sphere processing at block 802. The logic flow 800 maybe directed to generating a number of intermediate spheres from the unitsphere at block 804. These intermediate spheres may correspond todifferent radius values as desired for the transition between views. Asmentioned herein, a number of mathematical transformations, known asprojections, may be applied onto coordinates of the unit sphere in orderto generate data corresponding to a number of intermediate spheres. Forexample, the logic flow 800 may perform a projection from the unitsphere onto planar coordinates followed by an inverse of thosecoordinates onto another spherical coordinate system having a differentradius from the unit sphere.

The logic flow 800 may be directed to processing the intermediatespheres to illustrate a transition between views at block 806. In oneembodiment, the logic flow 800 may assign tasks related to thegeneration of the number of intermediate spheres to a plurality ofprocessors. By way of example, assigning these tasks may includeassigning work units to multiple processors and/or processor cores toefficiently render a progression of intermediate views of theintermediate spheres. In one embodiment, each view corresponds to a timevalue that also is mathematically related to the radius value. As thetime value decreases approaches zero, the radius value of acorresponding intermediate sphere increases, and vice versa. In oneembodiment, the logic flow 800 may transform a view of a firstintermediate sphere and a time value into a view of a secondintermediate sphere having a radius greater in size than a radius of thefirst intermediate sphere. Hence, each intermediate sphere along theprogression of intermediate views increases or decreases in radiusbetween points in time.

FIG. 9 illustrates an embodiment of a logic flow 900. The logic flow 900may be representative of some or all of the operations executed by oneor more embodiments described herein.

In the illustrated embodiment shown in FIG. 9, the logic flow 900performs a projection of geographic locations to a two dimensional mapat block 902. Such a projection may refer to a mathematical projectionor transformation between points in different coordinate systems. AMercator projection is one example projection between a global map and aflat map in which three dimensional geographic coordinates aretransformed into two dimensional coordinates. To illustrate anembodiment of the present disclosure, consider the following exampleadaption of the Mercator projection. These geographic locations maycorrespond to coordinates in the three dimensional map's coordinatesystem. If a set of spherical coordinates refer to the global map'sspherical coordinate system, the three dimensional surface is consideredspatially correct. For example, the set of spherical coordinates maydefine a particular geographic location on a three dimensional surface.When the logic flow 900 performs the mathematical projection onto a setof corresponding coordinates on the two dimensional map at block 902,these coordinates may be modified according to a desired radius valueaccording to one embodiment. This radius value may refer to anintermediate sphere modeling a global map that has been unfurled orexpanded.

The logic flow 900 may generate data to represent an inverse between thetwo dimensional map and an intermediate three dimensional map having adesired radius at block 904. This inverse, for example, may refer to aMercator projection inverse in which the set of correspondingcoordinates on the two dimensional map are mapped to a set of sphericalcoordinates on the intermediate three dimensional map.

The logic flow 900 may transform the data into spherical coordinates forthe geographic locations at block 906. For example, sphericalcoordinates may be converted into geographic locations. A coloringassignment may be applied to the intermediate three dimensional map todifferentiate the geographic locations. Visuals may be placed upon thesecoordinates to indicate date points, including data points associatedwith different categories.

FIG. 10 illustrates an embodiment of an exemplary computing architecture1000 suitable for implementing various embodiments as previouslydescribed. In one embodiment, the computing architecture 1000 maycomprise or be implemented as part of an electronic device. Examples ofan electronic device may include those described with reference to FIG.4, among others. The embodiments are not limited in this context.

As used in this application, the terms “system” and “component” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution, examples of which are provided by the exemplary computingarchitecture 1000. For example, a component can be, but is not limitedto being, a process running on a processor, a processor, a hard diskdrive, multiple storage drives (of optical and/or magnetic storagemedium), an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a server and the server can be a component. One or more componentscan reside within a process and/or thread of execution, and a componentcan be localized on one computer and/or distributed between two or morecomputers. Further, components may be communicatively coupled to eachother by various types of communications media to coordinate operations.The coordination may involve the uni-directional or bi-directionalexchange of information. For instance, the components may communicateinformation in the form of signals communicated over the communicationsmedia. The information can be implemented as signals allocated tovarious signal lines. In such allocations, each message is a signal.Further embodiments, however, may alternatively employ data messages.Such data messages may be sent across various connections. Exemplaryconnections include parallel interfaces, serial interfaces, and businterfaces.

The computing architecture 1000 includes various common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components, power supplies, and so forth.The embodiments, however, are not limited to implementation by thecomputing architecture 1000.

As shown in FIG. 10, the computing architecture 1000 comprises aprocessing unit 1004, a system memory 1006 and a system bus 1008. Theprocessing unit 1004 can be any of various commercially availableprocessors, including without limitation an AMD® Athlon®, Duron® andOpteron® processors; ARM® application, embedded and secure processors;IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony®Cell processors; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®,Xeon®, and XScale® processors; and similar processors. Dualmicroprocessors, multi-core processors, and other multi-processorarchitectures may also be employed as the processing unit 1004.

The system bus 1008 provides an interface for system componentsincluding, but not limited to, the system memory 1006 to the processingunit 1004. The system bus 1008 can be any of several types of busstructure that may further interconnect to a memory bus (with or withouta memory controller), a peripheral bus, and a local bus using any of avariety of commercially available bus architectures. Interface adaptersmay connect to the system bus 1008 via a slot architecture. Example slotarchitectures may include without limitation Accelerated Graphics Port(AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA),Micro Channel Architecture (MCA), NuBus, Peripheral ComponentInterconnect (Extended) (PCI(X)), PCI Express, Personal Computer MemoryCard International Association (PCMCIA), and the like.

The computing architecture 1000 may comprise or implement variousarticles of manufacture. An article of manufacture may comprise acomputer-readable storage medium to store logic. Examples of acomputer-readable storage medium may include any tangible media capableof storing electronic data, including volatile memory or non-volatilememory, removable or non-removable memory, erasable or non-erasablememory, writeable or re-writeable memory, and so forth. Examples oflogic may include executable computer program instructions implementedusing any suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code,object-oriented code, visual code, and the like. Embodiments may also beat least partly implemented as instructions contained in or on anon-transitory computer-readable medium, which may be read and executedby one or more processors to enable performance of the operationsdescribed herein.

The system memory 1006 may include various types of computer-readablestorage media in the form of one or more higher speed memory units, suchas read-only memory (ROM), random-access memory (RAM), dynamic RAM(DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), staticRAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, an array of devices such as RedundantArray of Independent Disks (RAID) drives, solid state memory devices(e.g., USB memory, solid state drives (SSD) and any other type ofstorage media suitable for storing information. In the illustratedembodiment shown in FIG. 10, the system memory 1006 can includenon-volatile memory 1010 and/or volatile memory 1012. A basicinput/output system (BIOS) can be stored in the non-volatile memory1010.

The computer 1002 may include various types of computer-readable storagemedia in the form of one or more lower speed memory units, including aninternal (or external) hard disk drive (HDD) 1014, a magnetic floppydisk drive (FDD) 1016 to read from or write to a removable magnetic disk1018, and an optical disk drive 1020 to read from or write to aremovable optical disk 1022 (e.g., a CD-ROM or DVD). The HDD 1014, FDD1016 and optical disk drive 1020 can be connected to the system bus 1008by a HDD interface 1024, an FDD interface 1026 and an optical driveinterface 1028, respectively. The HDD interface 1024 for external driveimplementations can include at least one or both of Universal Serial Bus(USB) and IEEE 1394 interface technologies.

The drives and associated computer-readable media provide volatileand/or nonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For example, a number of program modules canbe stored in the drives and memory units 1010, 1012, including anoperating system 1030, one or more application programs 1032, otherprogram modules 1034, and program data 1036. In one embodiment, the oneor more application programs 1032, other program modules 1034, andprogram data 1036 can include, for example, the various applicationsand/or components of the system 100.

A user can enter commands and information into the computer 1002 throughone or more wire/wireless input devices, for example, a keyboard 1038and a pointing device, such as a mouse 1040. Other input devices mayinclude microphones, infra-red (IR) remote controls, radio-frequency(RF) remote controls, game pads, stylus pens, card readers, dongles,finger print readers, gloves, graphics tablets, joysticks, keyboards,retina readers, touch screens (e.g., capacitive, resistive, etc.),trackballs, trackpads, sensors, styluses, and the like. These and otherinput devices are often connected to the processing unit 1004 through aninput device interface 1042 that is coupled to the system bus 1008, butcan be connected by other interfaces such as a parallel port, IEEE 1394serial port, a game port, a USB port, an IR interface, and so forth.

A monitor 1044 or other type of display device is also connected to thesystem bus 1008 via an interface, such as a video adaptor 1046. Themonitor 1044 may be internal or external to the computer 1002. Inaddition to the monitor 1044, a computer typically includes otherperipheral output devices, such as speakers, printers, and so forth.

The computer 1002 may operate in a networked environment using logicalconnections via wire and/or wireless communications to one or moreremote computers, such as a remote computer 1048. The remote computer1048 can be a workstation, a server computer, a router, a personalcomputer, portable computer, microprocessor-based entertainmentappliance, a peer device or other common network node, and typicallyincludes many or all of the elements described relative to the computer1002, although, for purposes of brevity, only a memory/storage device1050 is illustrated. The logical connections depicted includewire/wireless connectivity to a local area network (LAN) 1052 and/orlarger networks, for example, a wide area network (WAN) 1054. Such LANand WAN networking environments are commonplace in offices andcompanies, and facilitate enterprise-wide computer networks, such asintranets, all of which may connect to a global communications network,for example, the Internet.

When used in a LAN networking environment, the computer 1002 isconnected to the LAN 1052 through a wire and/or wireless communicationnetwork interface or adaptor 1056. The adaptor 1056 can facilitate wireand/or wireless communications to the LAN 1052, which may also include awireless access point disposed thereon for communicating with thewireless functionality of the adaptor 1056.

When used in a WAN networking environment, the computer 1002 can includea modem 1058, or is connected to a communications server on the WAN1054, or has other means for establishing communications over the WAN1054, such as by way of the Internet. The modem 1058, which can beinternal or external and a wire and/or wireless device, connects to thesystem bus 1008 via the input device interface 1042. In a networkedenvironment, program modules depicted relative to the computer 1002, orportions thereof, can be stored in the remote memory/storage device1050. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers can be used.

The computer 1002 is operable to communicate with wire and wirelessdevices or entities using the IEEE 802 family of standards, such aswireless devices operatively disposed in wireless communication (e.g.,IEEE 802.11 over-the-air modulation techniques). This includes at leastWi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wirelesstechnologies, among others. Thus, the communication can be a predefinedstructure as with a conventional network or simply an ad hoccommunication between at least two devices. Wi-Fi networks use radiotechnologies called IEEE 802.11x (a, b, g, n, etc.) to provide secure,reliable, fast wireless connectivity. A Wi-Fi network can be used toconnect computers to each other, to the Internet, and to wire networks(which use IEEE 802.3-related media and functions).

FIG. 11 illustrates a block diagram of an exemplary communicationsarchitecture 1100 suitable for implementing various embodiments aspreviously described. The communications architecture 1100 includesvarious common communications elements, such as a transmitter, receiver,transceiver, radio, network interface, baseband processor, antenna,amplifiers, filters, power supplies, and so forth. The embodiments,however, are not limited to implementation by the communicationsarchitecture 1100.

As shown in FIG. 11, the communications architecture 1100 comprisesincludes one or more clients 1102 and servers 1104. The clients 1102 mayimplement the client device 810, 910. The servers 1104 may implement theserver device 950. The clients 1102 and the servers 1104 are operativelyconnected to one or more respective client data stores 1108 and serverdata stores 1110 that can be employed to store information local to therespective clients 1102 and servers 1104, such as cookies and/orassociated contextual information.

The clients 1102 and the servers 1104 may communicate informationbetween each other using a communication framework 1106. Thecommunications framework 1106 may implement any well-knowncommunications techniques and protocols. The communications framework1106 may be implemented as a packet-switched network (e.g., publicnetworks such as the Internet, private networks such as an enterpriseintranet, and so forth), a circuit-switched network (e.g., the publicswitched telephone network), or a combination of a packet-switchednetwork and a circuit-switched network (with suitable gateways andtranslators).

The communications framework 1106 may implement various networkinterfaces arranged to accept, communicate, and connect to acommunications network. A network interface may be regarded as aspecialized form of an input output interface. Network interfaces mayemploy connection protocols including without limitation direct connect,Ethernet (e.g., thick, thin, twisted pair 10/100/1000 Base T, and thelike), token ring, wireless network interfaces, cellular networkinterfaces, IEEE 802.11a-x network interfaces, IEEE 802.16 networkinterfaces, IEEE 802.20 network interfaces, and the like. Further,multiple network interfaces may be used to engage with variouscommunications network types. For example, multiple network interfacesmay be employed to allow for the communication over broadcast,multicast, and unicast networks. Should processing requirements dictatea greater amount speed and capacity, distributed network controllerarchitectures may similarly be employed to pool, load balance, andotherwise increase the communicative bandwidth required by clients 1102and the servers 1104. A communications network may be any one and thecombination of wired and/or wireless networks including withoutlimitation a direct interconnection, a secured custom connection, aprivate network (e.g., an enterprise intranet), a public network (e.g.,the Internet), a Personal Area Network (PAN), a Local Area Network(LAN), a Metropolitan Area Network (MAN), an Operating Missions as Nodeson the Internet (OMNI), a Wide Area Network (WAN), a wireless network, acellular network, and other communications networks.

Some embodiments may be described using the expression “one embodiment”or “an embodiment” along with their derivatives. These terms mean that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment. Theappearances of the phrase “in one embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.Further, some embodiments may be described using the expression“coupled” and “connected” along with their derivatives. These terms arenot necessarily intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other.

It is emphasized that the Abstract of the Disclosure is provided toallow a reader to quickly ascertain the nature of the technicaldisclosure. It is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, it can be seen thatvarious features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted as reflecting an intention that the claimedembodiments require more features than are expressly recited in eachclaim. Rather, as the following claims reflect, inventive subject matterlies in less than all features of a single disclosed embodiment. Thusthe following claims are hereby incorporated into the DetailedDescription, with each claim standing on its own as a separateembodiment. In the appended claims, the terms “including” and “in which”are used as the plain-English equivalents of the respective terms“comprising” and “wherein,” respectively. Moreover, the terms “first,”“second,” “third,” and so forth, are used merely as labels, and are notintended to impose numerical requirements on their objects.

What has been described above includes examples of the disclosedarchitecture. It is, of course, not possible to describe everyconceivable combination of components and/or methodologies, but one ofordinary skill in the art may recognize that many further combinationsand permutations are possible. Accordingly, the novel architecture isintended to embrace all such alterations, modifications and variationsthat fall within the spirit and scope of the appended claims.

1. An apparatus, comprising: a logic circuit; and a map transitioncomponent operative on the logic circuit to render a set of views of adigital map for presentation on a display element in which a threedimensional view comprises data representing a spatially correct surfaceand at least one intermediate view corresponds to a transition betweenviews, each intermediate view to comprise mapping data between thespatially correct surface and a substantially spherical coordinatesystem.
 2. The apparatus of claim 1, wherein the map transitioncomponent operative to generate the mapping data based upon a projectionbetween one set of spherical coordinates and another set of sphericalcoordinates.
 3. The apparatus of claim 2, wherein the set of sphericalcoordinates and the other set of spherical coordinates correspond todifferent points in time in the transition.
 4. The apparatus of claim 3,wherein corresponding coordinates of the set of spherical coordinatesand the other set of spherical coordinates are represented by a color.5. The apparatus of claim 1, wherein the at least one intermediate viewcorresponds to at least a portion of a transition between the threedimensional view and a two dimensional view of the digital map.
 6. Theapparatus of claim 1, wherein the map transition component operative onthe logic circuit to modify a projection from the spatially correctsurface to a two dimensional surface using a time value.
 7. Theapparatus of claim 1, wherein the set of views comprise a sequence ofviews corresponding to an animated transition between a viewrepresenting the digital map as a three dimensional surface to a viewrepresenting the digital map as a two dimensional surface.
 8. Theapparatus of claim 1, wherein the map transition component operative todetermine a transition rate associated with presenting the set of views.9. The apparatus of claim 1, wherein the map transition componentoperative to render a view of a surface in which at least one region ofthe surface corresponds to a color of a range of colors.
 10. Theapparatus of claim 1, wherein the map transition component operative torender a number of time-bound categorized data points on a view of theset of views.
 11. A computer-implemented method, comprising: processinga unit sphere representing a three dimensional view of a digital map;generating, by circuitry, a number of intermediate spheres from the unitsphere in which each intermediate sphere corresponds to a differentradius; and processing the number of intermediate spheres to illustratea transition between the three dimensional view and a plane view. 12.The method of claim 11, comprising assigning tasks related to thegeneration of the number of intermediate spheres to a plurality ofprocessors.
 13. The method of claim 11, comprising processing a controldirective to switch between the three dimensional view and the planeview, the plane view depicting substantially all map data as atwo-dimensional surface.
 14. The method of claim 11, comprisingprojecting data represented by the unit sphere into data representingthe plane view of the digital map, and using a desired radius of anintermediate sphere to transform the data representing the plane viewinto data representing a view in a substantially spherical coordinatesystem.
 15. The method of claim 11, comprising generating a progressionof intermediate views corresponding to the number of intermediatespheres in which each intermediate sphere increases or decreases inradius between points in time along the progression.
 16. The method ofclaim 11, comprising transforming a view of a first intermediate sphereand a time value into a view of a second intermediate sphere having aradius greater in size than a radius of the first intermediate sphere.17. The method of claim 16, the radius of the second intermediate sphereis computed from the time value.
 18. At least one computer-readablestorage medium comprising instructions that, when executed, cause asystem to: perform a projection of geographic locations to a twodimensional map; generate data to represent an inverse between the twodimensional map and locations on a three dimensional map having adesired radius; and transform the data into spherical coordinates on thethree-dimensional map that correspond to the geographic locations. 19.The computer-readable storage medium of claim 18, comprisinginstructions that when executed cause the system to: perform a Mercatorprojection between a unit sphere and the two-dimensional map; modifydata representing the Mercator projection according to time values thatcorrespond to sequence of intermediate spheres, the sequence ofintermediate spheres represent a visual transition between the unitsphere and the two-dimensional map; and perform an inverse Mercatorprojection between the two-dimensional map and each intermediate sphere.20. The computer-readable storage medium of claim 18, comprisinginstructions that when executed cause the system to: assign colorsrepresenting categories to each intermediate sphere.